package com.tanjun.userservice.web.service.menu.service;

import com.mybatisflex.core.service.IService;
import com.tanjun.userservice.web.service.menu.entity.BaseAdminMenuEntity;
import jakarta.validation.constraints.NotNull;
import org.springframework.lang.Nullable;

import java.util.Collection;
import java.util.List;

/**
 * 菜单管理 服务层。
 *
 * @author tanjun
 * @since 2025-08-20
 */
public interface BaseAdminMenuService extends IService<BaseAdminMenuEntity> {
    /**
     * 判断权限点是否重复
     * @param menuId 菜单id
     * @param perm 权限点
     */
    boolean hasPerm(@Nullable Long menuId, @NotNull String perm);

    /**
     * 新增菜单信息
     * @param menu 菜单信息
     */
    void saveMenu(BaseAdminMenuEntity menu);

    /**
     * 删除菜单
     * @param menuId 菜单id
     */
    void delMenu(Long menuId);

    /**
     * 根据角色id获取所有的角色信息
     * @param roleIds 角色id
     * @return 角色对应的菜单
     */
    List<BaseAdminMenuEntity> listMenuByRoleIds(Collection<Long> roleIds);
}
